//===----------------------------------------------------------*- swift -*-===//
//
// This source file is part of the Swift Argument Parser open source project
//
// Copyright (c) 2020 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See https://swift.org/LICENSE.txt for license information
//
//===----------------------------------------------------------------------===//

import XCTest
import ArgumentParserTestHelpers

final class RollDiceGenerateManualTests: XCTestCase {
  func testRollDice_SinglePageManual() throws {
    try AssertGenerateManual(multiPage: false, command: "roll", expected: #"""
      .\" "Generated by swift-argument-parser"
      .Dd May 12, 1996
      .Dt ROLL 9
      .Os
      .Sh NAME
      .Nm roll
      .Sh SYNOPSIS
      .Nm
      .Op Fl -times Ar n
      .Op Fl -sides Ar m
      .Op Fl -seed Ar seed
      .Op Fl -verbose
      .Op Fl -help
      .Sh DESCRIPTION
      .Bl -tag -width 6n
      .It Fl -times Ar n
      Rolls the dice <n> times.
      .It Fl -sides Ar m
      Rolls an <m>-sided dice.
      .Pp
      Use this option to override the default value of a six-sided die.
      .It Fl -seed Ar seed
      A seed to use for repeatable random generation.
      .It Fl v , -verbose
      Show all roll results.
      .It Fl h , -help
      Show help information.
      .El
      .Sh AUTHORS
      The
      .Nm
      reference was written by
      .An -nosplit
      .An "Jane Appleseed" ,
      .Mt johnappleseed@apple.com ,
      and
      .An -nosplit
      .An "The Appleseeds"
      .Ao
      .Mt appleseeds@apple.com
      .Ac .
      """#)
  }

  func testRollDice_MultiPageManual() throws {
    try AssertGenerateManual(multiPage: true, command: "roll", expected: #"""
      .\" "Generated by swift-argument-parser"
      .Dd May 12, 1996
      .Dt ROLL 9
      .Os
      .Sh NAME
      .Nm roll
      .Sh SYNOPSIS
      .Nm
      .Op Fl -times Ar n
      .Op Fl -sides Ar m
      .Op Fl -seed Ar seed
      .Op Fl -verbose
      .Op Fl -help
      .Sh DESCRIPTION
      .Bl -tag -width 6n
      .It Fl -times Ar n
      Rolls the dice <n> times.
      .It Fl -sides Ar m
      Rolls an <m>-sided dice.
      .Pp
      Use this option to override the default value of a six-sided die.
      .It Fl -seed Ar seed
      A seed to use for repeatable random generation.
      .It Fl v , -verbose
      Show all roll results.
      .It Fl h , -help
      Show help information.
      .El
      .Sh AUTHORS
      The
      .Nm
      reference was written by
      .An -nosplit
      .An "Jane Appleseed" ,
      .Mt johnappleseed@apple.com ,
      and
      .An -nosplit
      .An "The Appleseeds"
      .Ao
      .Mt appleseeds@apple.com
      .Ac .
      """#)
  }
}
